refactor(storage): add metrics for uploader memory and no instance id in imm #17104
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Previously, we track the total memory usage of all imm. However, some imm may have already been flushed into sst, but still held by some ongoing iter, which means the current total imm usage is the combination of uploader imms and some orphan imms. In this PR, we introduce a new metrics that only track the total imm usage of uploader imm. We add grafana panel to see the total size of unflushed imm and orphan imm.
In uploader, imm are wrapped by
ImmUploader
struct, which does not implementClone
to ensure that each imm only exist in place in uploader. WhenImmUploader
is constructed, it will increment the uploader imm total size, and onDrop
, it will decrement the size.We won't store the instance id in imm any more, because in all usages, we can explicitly know the instance id that an imm belongs to.
Checklist
./risedev check
(or alias,./risedev c
)Documentation
Release note
If this PR includes changes that directly affect users or other significant modifications relevant to the community, kindly draft a release note to provide a concise summary of these changes. Please prioritize highlighting the impact these changes will have on users.